#pragma once
#include <string>
#include <memory>
struct Message
{
    int tag;           // 消息类型 1:关键字推荐 2:网页搜索
    int length;        // value的长度
    std::string value; // 消息内容

    // TLV序列化和反序列化
    std::string serialize() const;
    static Message deserialize(const std::string &data);

    // 解决粘包半包
    static bool isCompletePacket(const std::string &data, size_t &packet_len);
};
class TcpConnection;
using TcpConnectionPtr = std::shared_ptr<TcpConnection>;